﻿using Mt.Site.Core.WorkFlows.Design;
using Mt.Site.Core.WorkFlows.Enum;
using Mt.Site.Core.WorkFlows.Process.Entities;
using Mt.Site.Core.WorkFlows.Process.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mt.Site.Core.WorkFlows.Process
{
    public interface IPaperContext
    {
        /// <summary>
        /// 被审核的数据
        /// </summary>
        WorkFlowPaper Paper { get; }


        /// <summary>
        /// 文档状态
        /// </summary>
        PaperState PaperState { get; }

        /// <summary>
        /// 流程ID
        /// </summary>
        Guid WorkFlowId { get; }

        /// <summary>
        /// 过程序号
        /// </summary>
        Guid NodeId { get; }

        /// <summary>
        ///  对应的审核流程
        /// </summary>
        IWorkflowDefinition WorkFlow { get; }

        /// <summary>
        /// 对应的审核过程
        /// </summary>
        IWorkflowNodeDefinition CurrentNode { get; }

        /// <summary>
        /// 流程名称
        /// </summary>
        string WorkFlowName { get; }

        /// <summary>
        /// 处理节点名称
        /// </summary>
        string CurrentNodeName { get; }


        Task Initialize(IWorkFlowManager workFlowManager);
    }
}
